538. 把二叉搜索树转换为累加树

538. 把二叉搜索树转换为累加树

Similar Question

leading to the advanced question

Solution Tips

方案一: DFS

var convertBST = function(root) {
    // 中序遍历+前缀和即可
    // 因为是所有小的会累加, 还是个逆序中序遍历
    let preSum = 0;
    function dfs(node) {
        if (node === null) return 0;

        dfs(node.right);
        preSum += node.val;
        node.val = preSum;
        dfs(node.left);
    }

    dfs(root);
    return root;
};

减少全局变量

var convertBST = function(root) {
    // 中序遍历+前缀和即可
    // 因为是所有小的会累加, 还是个逆序中序遍历
    function dfs(node, preSum) {
        if (node === null) return 0;
        node.val += dfs(node.right, preSum)
        return dfs(node.left, node.val);
    }

    dfs(root);
    return root;
};